package com.youlai.boot.modules.distribution.dto.response;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.List;

/**
 * 品牌表现分页响应VO
 * 
 * @author xiheforever
 * @since 2025-06-05
 */
@Schema(description = "品牌表现分页响应VO")
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class BrandPerformancePageVO {

    @Schema(description = "数据列表")
    private List<BrandPerformanceDataVO> list;

    @Schema(description = "总记录数", example = "156")
    private Long total;

    @Schema(description = "品牌表现数据VO")
    @Data
    @Builder
    @AllArgsConstructor
    @NoArgsConstructor
    public static class BrandPerformanceDataVO {

        @Schema(description = "品牌名称", example = "华为")
        private String brandName;

        @Schema(description = "主要类目", example = "数码电器")
        private String mainCategory;

        @Schema(description = "一级类目", example = "数码电器")
        private String firstCategory;

        @Schema(description = "二级类目", example = "手机数码")
        private String secondCategory;

        @Schema(description = "三级类目", example = "智能手机")
        private String thirdCategory;

        @Schema(description = "经营模式", example = "自营")
        private String operationMode;

        @Schema(description = "浏览量", example = "15620")
        private Integer pageViews;

        @Schema(description = "访客数", example = "8965")
        private Integer visitorCount;

        @Schema(description = "人均浏览量", example = "1.74")
        private BigDecimal avgPageViewsPerVisitor;

        @Schema(description = "平均停留时长(秒)", example = "125")
        private Integer avgStayTime;

        @Schema(description = "成交人数", example = "1236")
        private Integer transactionUserCount;

        @Schema(description = "转化率(%)", example = "13.78")
        private BigDecimal conversionRate;

        @Schema(description = "成交单量", example = "856")
        private Integer transactionOrderCount;

        @Schema(description = "成交件数", example = "1240")
        private Integer transactionItemCount;

        @Schema(description = "成交金额(万元)", example = "456.78")
        private BigDecimal transactionAmount;

        @Schema(description = "客单价(元)", example = "1245.67")
        private BigDecimal averageTransactionValue;

        @Schema(description = "更新时间", example = "2025-06-05 14:30:25")
        private java.sql.Timestamp updateTime;

        @Schema(description = "增长率(%)", example = "12.5")
        private BigDecimal growthRate;

        @Schema(description = "趋势图标", example = "up")
        private String trendIcon;
    }
} 